perm filename UFC.REG[UP,DOC] blob sn#185721 filedate 1975-11-10 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	UFC: User Font Compiler
C00006 ENDMK
C⊗;
UFC: User Font Compiler

The process of font compilation consumes CPU time, particularly for
large fonts.  To allievate this somewhat, the User Font Compiler
(UFC) can be made to output a compiled font file (CFT).  When a font
is referenced for which a CFT file exists (which is newer than the
FNT file) then the CFT file is used, thus eliminating the
recompilation of the FNT file.

The program UFC[XGP,SYS] is the user mode font compiler.  The
pricipal purpose of UFC is to produce compiled font files.  To use
UFC in this way, RUN UFC[XGP,SYS] and type a command of the form
<output file>←<input file>.  The input file will be compiled and the
compiled font will be written in the output file.  For the input file
there is no default ppn; if an explicit extension is specified, that
file will be read; if no extension is given, the file name with blank
extension will be read if it exists, otherwise the newest of the .FNT
and .CFT files will be read.  For output there is no default ppn; the
default extension is CFT.  Incidently, UFC (or FC, the font compiler)
will delete a CFT file that is older than the corresponding FNT file.
Also, it is suggested that a fresh copy of UFC should be run for each
font being compiled.

.run ufc[xgp,sys]
<OUTPUT FILE>←<INPUT FILE><SWITCHES>
SWITCHES:	/n	SETS THE FONT NUMBER
		/X	WRITE A SAMPLE ON THE XGP
*foo←baz/1	;compiles BAZ (or BAZ.FNT or BAZ.CFT) as font 1 and
		; writes FOO.CFT
*bosh/2		;compiles BOSH (or etc.) as font 2
*zip←		;writes font 2 as ZIP.CFT
*/x		;writes a sample of font 2 on the XGP

Another purpose of UFC is to debug FNT files.  If a FNT file cannot
be compiled because of some error in the format, UFC will type out
some message.  When used in this mode, a wizard is often necessary.

The reason that two font file formats exist is because the FNT file
format is public, i.e., software, not part of the operating system,
knows about this format, which will remain nearly constant.  The
compiled font format is a private format used only by the operating
system (XGPSER), and by the font compiler, which is a symbiotic part
of the system.  The compiled font format is dictated by whatever
implementation of XGPSER exists at any given time.  Thus the font
compiler decouples operating system changes from changes in the FNT
files.